package com.cq.hd.member.api.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.cq.hd.common.serialize.Decimal2Serializer;
import com.fasterxml.jackson.annotation.JsonFormat;


import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class BusinessPageVo implements Serializable {

    @ApiModelProperty(value = "商家id")
    private Long id;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "入驻邀请码")
    private String settleCode;

    @ApiModelProperty(value = "邀请码")
    private String inviteCode;

    @ApiModelProperty(value = "商家编号")
    private String businessNo;

    @ApiModelProperty(value = "汇付商户号")
    private String hfMerchantNo;

    @ApiModelProperty(value = "子账户号（商家另一个现金户）")
    private String hfAcctId;


    @ApiModelProperty(value = "会员到期时间")
    @JSONField(format="yyyy.MM.dd HH:mm:ss")
    private LocalDateTime memberExpireTime;

    @ApiModelProperty(value = "商家名称")
    private String businessName;

    @ApiModelProperty(value = "商家简称")
    private String businessShortName;

    @ApiModelProperty(value = "商家logo")
    private String logo;

    @ApiModelProperty(value = "商家简介")
    private String introduction;

    @ApiModelProperty(value = "商家简介图片")
    private String introductionImg;

    @ApiModelProperty(value = "客服电话")
    private String customerMobile;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机号")
    private String contactMobileNo;

    @ApiModelProperty(value = "联系人电子邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "系统管理员手机号")
    private String mobile;

    @ApiModelProperty(value = "定位省份名称")
    private String provinceName;

    @ApiModelProperty(value = "定位市名称")
    private String cityName;

    @ApiModelProperty(value = "定位区县名称")
    private String countyName;

    @ApiModelProperty(value = "定位详细地址")
    private String position;


    @ApiModelProperty(value = "佣金补贴金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal subsidyAmt;


    @ApiModelProperty(value = "冻结佣金补贴金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal freezeAmt;


    @ApiModelProperty(value = "营销补贴金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal marketingAmt;


    @ApiModelProperty(value = "冻结营销补贴金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal freezeMarketingAmt;

    @ApiModelProperty(value = "活动发布次数(赠送免费次数)")
    private Integer activeCount;

    @ApiModelProperty(value = "经纪人人数")
    private Integer agentCount;

    @ApiModelProperty(value = "商家状态（1-正常，2-试用中，3-已过期）")
    private Integer state;

    @ApiModelProperty(value = "公司类型(1：政府机构，2：国营企业，3：私营企业，4：外资企业，5：个体工商户，6：其它组织，7：事业单位)")
    private Integer companyType;

    @ApiModelProperty(value = "所属行业code")
    private String mcc;

    @ApiModelProperty(value = "所属行业名称")
    private String mccName;

    @ApiModelProperty(value = "创建时间")
    @JSONField(format="yyyy.MM.dd HH:mm:ss")
    private LocalDateTime createTime;



    @ApiModelProperty(value = "商户名称")
    private String merchantName;

    @ApiModelProperty(value = "商户手机号")
    private String merchantMobile;

    @ApiModelProperty(value = "累计购卡次数")
    private Integer buyCardCount = 0;

    @ApiModelProperty(value = "累计购卡金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal buyCardAmt = BigDecimal.ZERO;

    @ApiModelProperty(value = "累计会员续费次数")
    private Integer memberFeeCount = 0;

    @ApiModelProperty(value = "累计会员续费金额")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal memberFeeAmt = BigDecimal.ZERO;

    @ApiModelProperty(value = "会员状态：1-未开通，2-已开通，3-已过期")
    private Integer memberState;

    @ApiModelProperty(value = "结算类型：1-自建账户 2-结算池账户")
    private Integer financialAccountType;

    @ApiModelProperty(value = "剩余发布次数")
    private Integer remainActiveCount = 0;

    @ApiModelProperty(value = "商家主页背景图")
    private String homeBackgroundImage;

    @ApiModelProperty(value = "分享海报显示商家头像：1是 2否")
    private Integer posterShowAvatarState;

    @ApiModelProperty(value = "最多可邀请经纪人数量(累计)。null表示不限制")
    private Integer maxInviteAgentCount;

    @ApiModelProperty(value = "单活动商户数（一个活动最多引用几个商户的产品）。null表示不限制")
    private Integer singleActiveMerchantCount;

    @ApiModelProperty(value = "是否开启积分商城：0未开启 1已开启 2已关闭")
    private Integer pointsMallState;

    @ApiModelProperty(value = "积分商城首次开通时间")
    private LocalDateTime pointsMallFirstOpenTime;
}
